package program; import java.text.DecimalFormat; public class HelpfulFunctions { public String polynomialToString(Polynomial p) { String s = new String(); DecimalFormat df = new DecimalFormat("###.##"); sort(p); int ok = 0; for (int i = 0; i < p.size; i++) { if (p.coefficient[i] != 0) { ok = 1; s = s + df.format(p.coefficient[i]) + 'x' + '^' + p.power[i]; for (int j = i; j < p.size - 1; j++) if (p.coefficient[j + 1] > 0) { s = s + '+'; break; } else if (p.coefficient[j + 1] < 0) break; } } if (ok == 0) s = s + '0'; return s; } public double getCoefficient(int i, String s) { int nr = 0; i--; while (Character.isDigit(s.charAt(i)) && i >= 1) i--; int sign = i; i++; if (i == 1 && s.charAt(i - 1) != '-') { nr = nr * 10 + (int) (s.charAt(i - 1) - '0'); } while (Character.isDigit(s.charAt(i))) { nr = nr * 10 + (int) (s.charAt(i) - '0'); i++; } if (s.charAt(sign) == '-') return (double) -nr; return (double) nr; } public int getPower(int i, String s) { int nr = 0; i++; while (Character.isDigit(s.charAt(i)) && i < s.length() - 1) { nr = nr * 10 + (int) (s.charAt(i) - '0'); i++; } if (i == s.length() - 1) nr = nr * 10 + (int) (s.charAt(i) - '0'); return nr; } public static void sort(Polynomial p) { int ok; do { ok = 0; for (int i = 0; i < p.size - 1; i++) { if (p.power[i] < p.power[i + 1]) { int aux1 = p.power[i]; double aux2 = p.coefficient[i]; p.power[i] = p.power[i + 1]; p.power[i + 1] = aux1; p.coefficient[i] = p.coefficient[i + 1]; p.coefficient[i + 1] = aux2; ok = 1; } } } while (ok == 1); } }